home *** CD-ROM | disk | FTP | other *** search
- 0 rem the transactor volume 5 issue 06 page 29
- 10 rem ********************************
- 14 rem ** an amazing keyboard driver **
- 16 rem **** for your commodore 64 ****
- 18 rem *** aubrey stanley dec 1984 ***
- 20 rem ********************************
- 22 rem **
- 50 tb$="kernel":pg$="kprg":rem *tells loader how to load kwiz*
- 52 i=53216:nk=2:rem *irq address & n-key rollover count*
- 54 if tb$="kernel" and pg$="kprg" then 100:rem *use kernel tables & data lines*
- 56 if ft>1 then 100:rem *program and table files loaded from disk*
- 58 if ft=1 then 62:rem *program file loaded from disk*
- 60 ft=1:if pg$<>"kprg" then pg=1:load "0:"+pg$,8,1: rem *load program file*
- 62 ft=2:if tb$<>"kernel" then tb=128:load "0:"+tb$,8,1:rem *load table file*
- 64 goto 100
- 65 rem ********************************
- 70 rem *save program, type - run 70*
- 72 pg$="kwiz":rem *program file name*
- 74 ad=41216:bd=49152:n=2400:rem *prog address, saved from address, byte count*
- 76 open 2,8,2,"@0:"+pg$+",p,w"
- 78 goto 88
- 79 rem ************
- 80 rem *save tables, type - run 80*
- 82 tb$="kwiz.tb":rem *table file name*
- 84 ad=47072:bd=49152:n=2080:rem *table address, saved from address, byte count*
- 86 open 2,8,2,"@0:"+tb$+",p,w"
- 88 print#2,chr$(ad-int(ad/256)*256);
- 90 print#2,chr$(ad/256);
- 92 for i=0 to n-1
- 94 print#2,chr$(peek(bd+i));
- 96 next i
- 98 close 2:end
- 99 rem ********************************
- 100 for n=0 to 23:rem *poke irq vector code block*
- 102 read a:poke i+n,a:next
- 104 if pg=1 then 112:rem *bypass program pokes if program loaded from disk*
- 106 for j=41216 to 43615:rem *poke program code block*
- 108 read a:poke j,a:next
- 112 poke 41216,tb:rem *tells program whether tables are loaded from disk*
- 116 poke 41218,nk:rem *tells program the n-key factor*
- 118 poke 56334,peek(56334)and254:rem *disable keyboard (timer) interrupt*
- 120 poke 788,(i-int(i/256)*256):rem *set up irq vector address low byte*
- 122 poke 789,(i/256):rem *set up irq vector high byte*
- 124 poke 56334,peek(56334)or1:rem *enable keyboard (timer) interrupt
- 126 end:rem *of loading*
- 128 rem *******************************
- 200 data32,35,234,165,1,41,254,133,1,32,39,161,165,1,9,1,133
- 201 data1,76,126,234,0,90,32
- 250 rem *******************************
- 300 data0,0,2,0,184,0,185,0,186,0,187,254,253,251,247,239,223
- 301 data191,127,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0
- 302 data0,0,0,0,0,44,1,161,48,62,32,185,163,169,128,141,1
- 303 data161,169,46,160,165,141,143,2,140,144,2,169,0,133,198,141,141
- 304 data2,141,142,2,141,27,161,141,30,161,141,37,161,141,38,161,169
- 305 data64,133,203,133,197,141,28,161,141,29,161,169,255,162,7,157,19
- 306 data161,202,16,250,32,110,163,173,38,161,208,17,173,30,161,208,20
- 307 data169,0,141,0,220,173,1,220,201,255,208,8,162,254,32,55,163
- 308 data76,150,161,169,8,141,31,161,32,156,161,32,207,162,169,127,141
- 309 data0,220,96,206,31,161,16,1,96,174,31,161,189,11,161,141,0
- 310 data220,173,1,220,205,1,220,208,248,93,19,161,141,32,161,172,32
- 311 data161,240,222,174,31,161,136,152,45,32,161,168,77,32,161,141,33
- 312 data161,140,32,161,93,19,161,45,33,161,141,34,161,240,15,206,30
- 313 data161,173,33,161,93,19,161,29,19,161,76,7,162,173,30,161,205
- 314 data2,161,176,199,173,141,2,41,3,201,3,240,190,238,30,161,173
- 315 data33,161,93,19,161,61,19,161,157,19,161,173,31,161,10,10,10
- 316 data168,173,33,161,162,255,142,36,161,238,36,161,74,144,250,152,77
- 317 data36,161,141,36,161,10,10,168,173,3,161,133,245,173,4,161,133
- 318 data246,177,245,170,172,36,161,224,5,176,76,224,3,240,72,77,141
- 319 data2,141,141,2,141,142,2,41,4,240,34,173,141,2,41,2,240
- 320 data11,169,128,77,138,2,141,138,2,76,185,161,173,141,2,41,1
- 321 data240,31,77,37,161,141,37,161,76,185,161,173,141,2,41,3,201
- 322 data3,208,13,173,145,2,48,8,173,24,208,73,2,141,24,208,76
- 323 data185,161,173,34,161,240,29,196,197,208,6,169,64,133,203,133,197
- 324 data152,160,2,136,48,10,217,28,161,208,248,169,64,153,28,161,76
- 325 data185,161,32,76,163,169,64,172,27,161,173,36,161,153,28,161,152
- 326 data73,1,141,27,161,169,16,141,140,2,169,4,141,139,2,32,48
- 327 data163,76,185,161,173,30,161,240,91,173,141,2,41,3,201,3,240
- 328 data82,44,138,2,48,2,112,75,173,140,2,240,5,206,140,2,208
- 329 data65,206,139,2,208,60,169,4,141,139,2,169,2,141,35,161,206
- 330 data35,161,48,45,174,35,161,189,28,161,201,64,240,241,141,36,161
- 331 data32,76,163,44,138,2,48,18,41,127,201,20,240,12,201,32,240
- 332 data8,201,29,240,4,201,17,208,212,32,48,163,76,253,162,96,173
- 333 data36,161,133,203,133,197,108,143,2,224,224,176,13,138,166,198,236
- 334 data137,2,176,5,157,119,2,230,198,96,173,36,161,10,10,168,173
- 335 data141,2,10,201,8,144,2,169,6,170,189,3,161,133,245,189,4
- 336 data161,133,246,177,245,170,172,36,161,96,32,234,255,165,204,208,41
- 337 data198,205,208,37,169,20,133,205,164,211,70,207,174,135,2,177,209
- 338 data176,17,230,207,133,206,32,36,234,177,243,141,135,2,174,134,2
- 339 data165,206,73,128,32,28,234,165,1,41,16,240,10,160,0,132,192
- 340 data165,1,9,32,208,8,165,192,208,6,165,1,41,31,133,1,96
- 341 data173,0,161,208,44,162,63,189,129,235,157,0,160,202,16,247,162
- 342 data63,189,194,235,157,64,160,202,16,247,162,63,189,3,236,157,128
- 343 data160,202,16,247,162,63,189,120,236,157,192,160,202,16,247,173,0
- 344 data161,16,3,76,116,164,162,228,142,199,160,232,142,194,160,232,142
- 345 data255,160,232,142,252,160,232,142,192,160,232,142,193,160,232,142,243
- 346 data160,169,0,133,245,169,184,133,246,32,117,164,189,0,160,145,245
- 347 data136,136,136,136,202,16,244,169,0,133,245,169,185,133,246,32,117
- 348 data164,189,64,160,145,245,136,136,136,136,202,16,244,169,0,133,245
- 349 data169,186,133,246,32,117,164,189,128,160,145,245,136,136,136,136,202
- 350 data16,244,169,0,133,245,169,187,133,246,32,117,164,189,192,160,145
- 351 data245,136,136,136,136,202,16,244,162,31,138,157,224,183,202,16,249
- 352 data96,160,255,169,0,145,245,136,16,251,162,63,160,252,96,252,167
- 353 data79,165,78,165,235,167,105,165,119,166,16,167,43,168,120,168,158
- 354 data168,139,168,78,165,78,165,78,165,78,165,78,165,78,165,78,165
- 355 data78,165,78,165,78,165,78,165,78,165,78,165,78,165,78,165,78
- 356 data165,78,165,78,165,78,165,78,165,78,165,0,0,188,189,190,191
- 357 data83,84,82,73,78,71,32,63,157,67,79,78,71,73,71,32,63
- 358 data157,85,83,69,82,32,63,157,32,65,76,76,32,85,83,69,68
- 359 data32,85,78,68,79,78,69,32,79,46,75,46,78,85,76,76,32
- 360 data75,69,89,32,65,66,79,82,84,83,65,86,69,32,80,71,83
- 361 data65,86,69,32,84,66,157,95,254,226,157,255,1,255,228,0,184
- 362 data8,0,185,30,224,191,46,165,78,165,0,0,0,0,0,0,32
- 363 data52,165,76,58,163,138,224,224,176,2,169,224,41,31,10,168,185
- 364 data131,164,141,195,164,185,132,164,141,196,164,108,195,164,96,32,114
- 365 data169,32,188,169,174,24,165,36,157,16,242,169,78,141,38,165,169
- 366 data165,141,39,165,76,239,168,169,131,141,143,2,169,165,141,144,2
- 367 data169,201,133,245,169,164,133,246,169,9,32,226,168,76,78,170,224
- 368 data254,240,110,176,8,224,227,176,107,224,13,240,113,32,114,169,32
- 369 data133,169,32,188,169,173,26,165,201,226,240,87,32,152,169,169,0
- 370 data141,22,165,224,225,240,47,160,32,136,16,16,169,226,133,245,169
- 371 data164,133,246,169,9,32,226,168,76,98,166,185,224,183,201,255,240
- 372 data230,141,21,165,142,20,165,169,255,153,224,183,169,225,141,19,165
- 373 data32,226,169,174,20,165,224,255,208,3,32,8,170,32,58,163,169
- 374 data18,141,143,2,169,166,141,144,2,162,61,76,58,163,162,63,32
- 375 data58,163,162,157,76,58,163,169,255,133
- 400 data245,169,164,133,246,169,6,32,226,168,76,98,166,224,254,240,41
- 401 data224,227,176,222,224,225,208,9,32,114,169,32,188,169,174,24,165
- 402 data224,13,240,26,173,21,165,32,207,168,172,22,165,138,145,245,200
- 403 data238,22,165,192,32,240,3,76,58,163,32,58,163,173,22,165,208
- 404 data18,173,21,165,168,153,224,183,173,20,165,141,19,165,32,22,170
- 405 data208,3,32,36,170,32,226,169,173,40,165,141,138,2,169,46,141
- 406 data143,2,169,165,141,144,2,162,141,76,58,163,169,145,141,143,2
- 407 data169,166,141,144,2,169,210,133,245,169,164,133,246,169,9,32,226
- 408 data168,76,78,170,224,254,240,68,176,7,224,225,144,3,76,248,165
- 409 data224,13,208,3,76,2,166,32,114,169,32,133,169,32,188,169,32
- 410 data152,169,173,22,165,201,226,240,8,142,20,165,169,226,141,22,165
- 411 data174,20,165,224,255,208,3,32,8,170,32,58,163,169,220,141,143
- 412 data2,169,166,141,144,2,162,61,76,58,163,224,254,240,249,224,227
- 413 data144,3,76,248,165,32,114,169,32,188,169,224,225,240,7,173,26
- 414 data165,201,226,208,3,174,24,165,224,13,208,8,169,0,141,22,165
- 415 data76,81,166,142,19,165,32,58,163,76,92,166,169,42,141,143,2
- 416 data169,167,141,144,2,169,219,133,245,169,164,133,246,169,7,32,226
- 417 data168,76,78,170,224,254,240,82,176,18,224,224,144,7,224,227,240
- 418 data10,76,248,165,224,13,208,3,76,2,166,32,114,169,32,133,169
- 419 data32,188,169,32,152,169,224,227,240,8,142,20,165,169,227,141,19
- 420 data165,169,0,141,21,165,141,22,165,174,20,165,224,255,208,3,32
- 421 data8,170,32,58,163,169,0,141,41,165,169,131,141,143,2,169,167
- 422 data141,144,2,162,61,76,58,163,224,254,240,249,224,228,144,3,76
- 423 data248,165,224,225,144,9,32,114,169,32,188,169,174,24,165,224,13
- 424 data208,3,76,81,166,138,201,48,144,65,201,64,240,61,144,7,201
- 425 data71,176,55,24,105,9,41,15,238,41,165,172,41,165,192,4,240
- 426 data8,192,2,240,4,10,10,10,10,192,3,176,9,13,22,165,141
- 427 data22,165,76,223,167,13,21,165,141,21,165,192,4,240,3,76,58
- 428 data163,32,58,163,76,92,166,76,248,165,32,114,169,32,188,169,174
- 429 data24,165,36,157,16,3,108,25,165,96,36,157,16,18,169,1,45
- 430 data37,161,240,11,224,20,208,8,162,29,32,58,163,162,20,96,224
- 431 data32,144,19,224,128,144,4,224,160,144,11,142,20,165,162,148,32
- 432 data58,163,174,20,165,96,36,157,16,72,169,183,160,224,162,192,44
- 433 data42,165,48,6,169,161,160,0,162,171,133,252,132,251,169,192,133
- 434 data254,160,0,132,253,177,251,145,253,200,208,249,230,252,230,254,228
- 435 data252,208,241,44,42,165,48,10,169,0,141,1,192,32,50,170,208
- 436 data3,32,64,170,169,128,77,42,165,141,42,165,162,141,96,36,157
- 437 data16,14,172,43,165,136,16,2,160,15,140,43,165,140,33,208,96
- 438 data36,157,16,14,172,45,165,136,16,2,160,15,140,45,165,140,32
- 439 data208,96,36,157,16,42,172,44,165,136,16,2,160,15,140,44,165
- 440 data140,134,2,152,160,216,132,246,160,0,132,245,145,245,200,208,4
- 441 data230,246,208,247,192,232,208,243,166,246,224,219,208,237,162,255,96
- 442 data168,10,10,10,10,10,133,245,152,74,74,74,168,185,197,164,133
- 443 data246,96,141,41,165,160,0,32,10,169,208,251,162,255,96,173,26
- 444 data165,141,41,165,173,25,165,32,207,168,160,0,76,27,169,32,10
- 445 data169,208,248,162,255,108,38,165,177,245,201,141,208,2,169,13,170
- 446 data32,58,163,200,206,41,165,96,165,198,205,137,2,144,222,165,245
- 447 data141,34,165,165,246,141,35,165,140,33,165,173,143,2,141,36,165
- 448 data173,144,2,141,37,165,169,77,141,143,2,169,169,141,144,2,162
- 449 data255,142,38,161,76,58,163,165,198,208,244,173,34,165,133,245,173
- 450 data35,165,133,246,172,33,165,173,36,165,141,143,2,173,37,165,141
- 451 data144,2,169,0,141,38,161,76,0,169,173,36,161,10,10,141,30
- 452 data165,165,245,141,31,165,165,246,141,32,165,96,173,30,165,141,27
- 453 data165,173,31,165,141,28,165,173,32,165,141,29,165,96,173,23,165
- 454 data141,19,165,173,24,165,141,20,165,173,25,165,141,21,165,173,26
- 455 data165,141,22,165,96,173,28,165,133,245,173,29,165,133,246,96,173
- 456 data31,165,133,245,173,32,165,133,246,173,30,165,168,177,245,141,23
- 457 data165,200,177,245,141,24,165,200,177,245,141,25,165,200,177,245,141
- 458 data26,165,96,173,28,165,133,245,173,29,165,133,246,173,27,165,168
- 459 data173,19,165,145,245,200,173,20,165,145,245,200,173,21,165,145,245
- 460 data200,173,22,165,145,245,96,169,247,133,245,169,164,133,246,169,8
- 461 data32,226,168,96,169,235,133,245,169,164,133,246,169,7,32,226,168
- 462 data96,169,242,133,245,169,164,133,246,169,5,32,226,168,96,169,5
- 463 data133,245,169,165,133,246,169,7,32,226,168,96,169,12,133,245,169
- 464 data165,133,246,169,7,32,226,168,96,173,138,2,141,40,165,169,64
- 465 data141,138,2,96,1,255,1,255,1,255
-